package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntityPlus;
import lombok.Builder;
import lombok.Data;

import java.util.Date;


@Data
@TableName("wechat_user")
@Builder
public class WeChatUser extends BaseEntityPlus {

    private static final long serialVersionUID = 1L;

    /**
     * 系统内部唯一用户ID
     */
    @TableId(value = "user_id", type = IdType.AUTO)
    private Long userId;

    /**
     * 微信用户在当前应用的唯一标识
     */
    @TableField(value = "openid")
    private String openid;

    /**
     * 微信开放平台下的唯一标识（跨应用）
     */
    @TableField(value = "unionid")
    private String unionid;

    /**
     * 用户昵称
     */
    @TableField(value = "nick_name")
    private String nickName;

    /**
     * 用户头像URL
     */
    @TableField(value = "avatar")
    private String avatar;

    /**
     * 用户性别（0男 1女 2未知）
     */
    @TableField(value = "gender")
    private String gender;

    /**
     * 用户语言偏好
     */
    @TableField(value = "language")
    private String language;

    /**
     * 国家/地区
     */
    @TableField(value = "country")
    private String country;

    /**
     * 省份
     */
    @TableField(value = "province")
    private String province;

    /**
     * 城市
     */
    @TableField(value = "city")
    private String city;

    /**
     * 绑定的手机号
     */
    @TableField(value = "phone_number")
    private String phoneNumber;

    /**
     * 最近一次登录时间
     */
    @TableField(value = "last_login_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastLoginTime;

    /**
     * 状态（0正常 1停用）
     */
    @TableField(value = "status")
    private String status;
}
